package helper.base

import java.util.regex.Matcher
import java.util.regex.Pattern

object PatternHelper {
    // 匹配方法，使用给定的正则表达式和文本进行匹配，返回 Matcher 对象
    fun patternMatch(
        regex: String,
        text: String,
    ): Matcher {
        val pattern = Pattern.compile(regex)
        return pattern.matcher(text)
    }

    object Example {
        // 扩展函数，用于从字符串的前缀匹配中提取指定前缀后的部分
        fun String.matchPrefix(
            prefix: String,
        ): String? {
            patternMatch(
                "${prefix}_(\\w+)",
                this
            ).let {
                if (it.find()) {
                    return it.group(1)
                }
            }
            return null
        }

        // 示例方法，用于从字符串中匹配特定格式的 state id
        fun matchStateId(
            inputString: String,
        ): String? {
            val matcher = patternMatch(
                "<state id=\"(\\w+)\">",
                inputString,
            )
            if (matcher.find()) {
                return matcher.group(1)
            }
            return null
        }
    }
}